package com.yaodian100.ec.jd;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.jd.ac.sdk.api.JdException;
import com.jd.ac.sdk.api.response.delivery.LogisticsCompany;

public interface JDSerivce {
	public String testGift(Date orderDate, BigDecimal price, String domainSrc) throws ParseException;

	/**
	 * 快速获取一段时间内的交易信息(新)
	 * 
	 * @param StartDate 开始时间
	 * @param EndDate 结束时间
	 * @param OrderState （非必填） 三个状态， WAIT_SELLER_STOCK_OUT 等待出库， WAIT_SELLER_DELIVERY 等待发货(只适用于SOP商家)， TRADE_CANCELED 取消
	 * @param Page 页数 <100
	 * @param PageSize 每页显示的数量 <20
	 * @param OptionalFields （非必填） vender_id ： 商家id ；order_id ： 订单Id ； pay_type ： 支付方式
	 * @return List<OrderInfo>
	 * @throws JdException
	 */
	public Integer findBuyTimeJDOrderNew(String StartDate, String EndDate, String OrderState, String Page, String PageSize)
			throws JdException;

	/**
	 * 取得jd订单清单（无储存）
	 * 
	 * @param startDate
	 * @param endDate
	 * @param OrderState
	 * @param Page
	 * @param PageSize
	 * @return
	 * @throws JdException
	 */
	public Map<String, Object> getJDOrderList(String startDate, String endDate, String OrderState, String Page,
			String PageSize) throws JdException;

	/**
	 * 更据订单orderid 获取订单信息
	 * 
	 * @param orderId 订单ID
	 * @param optionalFields 反回的参数
	 * @return orderInfo
	 * @throws JdException
	 */
	// public Orders findBuyOrderIdOrderInfo(String orderId) throws JdException;

	/**
	 * 获取京东物流信息
	 * 
	 * @return
	 * @throws JdException
	 */
	public List<LogisticsCompany> getJDLogistics() throws JdException;

	/**
	 * 改变商品上下加
	 * 
	 * @param wareId 商品ID
	 * @param wareState 商品状态(ON_SHELF;OFF_SHELF)
	 * @param tradeNo 流水号
	 * @return
	 * @throws JdException
	 */
	public String changeWareState(String wareId, String wareState, String tradeNo) throws JdException;

	/**
	 * 查询商品的ID
	 * 
	 * @param id
	 * @return
	 */
	public String findProductId(String id) throws JdException;

	// /**
	// * 获取一段时间内的交易信息
	// *
	// * @param StartDate 开始时间
	// * @param EndDate 结束时间
	// * @param OrderState 每次查询只能输入一个订单状态（ALL：全部 、WAIT_SELLER_STOCK_OUT ： 等待出库 、 WAIT_SELLER_DELIVERY ： 等待发货 、
	// * WAIT_BUYER_CONFIRM_GOODS ： 已发货 、 TRADE_FINISHED ： 买家已收货）
	// * @param Page 页数 <100
	// * @param PageSize 每页的条数 <20
	// * @param OptionalFields 返回订单的信息字段（ vender_id ：商家编号 freight_price ：订单运费 pay_type ： 支付方式 fact_freight_price ： 实际运费
	// * total_discount_fee ： 优惠总金额 payment ： 用户实付金额 seller_order_remark ： 商家订单备注 order_end_time ： 结单时间
	// * delivery_date_remark ： 送货日期 ware_total_price ： 商品总金额 order_total_price ： 订单总金额 order_state ： 订单状态
	// * invoice_info ： 发票信息 buyer_order_remark ： 买家订单备注 order_start_time ： 下单时间 ware_id ： 商品id sku_out_id ：
	// * SKU外部id ware_out_id ： 商品外部id sku_id ： SKU京东id product_no ： 商品货号 gift_point ： 赠送积分 ware_name ： 商品名称规格
	// * jd_price ： SKU京东价 ware_discount_fee ： 优惠金额 ware_total ： 商品数量 consignee_info ： 用户信息）
	// * @return
	// * @throws JdException
	// */
	// public List<OrderInfo> findBuyTimeJDOrder(String StartDate, String EndDate, String OrderState, String Page,
	// String PageSize, String OptionalFields) throws JdException;
	public void testGetJDOrder(String startDate, String endDate, String orderId, String orderState, String page,
			String pageSize) throws JdException;

	public void getJDOrder(String[] orderIds);

	public void setId(String id);

	public void setKey(String key);

	public void setJdMemberOptionKey(String key);
}
